在给定值的情况下,如何获取JavaEnum类型的名称?我有以下适用于特定枚举类型的代码,我可以让它更通用吗?publicenumCategory{APPLE("3"),ORANGE("1"),privatefinalStringidentifier;privateCategory(Stringidentifier){this.identifier=identifier;}publicStringtoString(){returnidentifier;}publicstaticStringgetEnumNameForValue(Objectvalue){Category[]values=
我有一个enum开关或多或少像这样:publicstaticenumMyEnum{A,B}publicintfoo(MyEnumvalue){switch(value){case(A):returncalculateSomething();case(B):returncalculateSomethingElse();}thrownewIllegalArgumentException("Donotknowhowtohandle"+value);}我希望测试涵盖所有行,但由于代码需要处理所有可能性,如果没有相应的switch语句,我无法提供值。扩展枚举以添加额外的值是不可能的,并且仅仅模拟
我有一个enum开关或多或少像这样:publicstaticenumMyEnum{A,B}publicintfoo(MyEnumvalue){switch(value){case(A):returncalculateSomething();case(B):returncalculateSomethingElse();}thrownewIllegalArgumentException("Donotknowhowtohandle"+value);}我希望测试涵盖所有行,但由于代码需要处理所有可能性,如果没有相应的switch语句,我无法提供值。扩展枚举以添加额外的值是不可能的,并且仅仅模拟
我正在从Android中的native代码接收long或int形式的返回值,我想将其转换或与enum匹配,以进行处理。可能吗?怎么样? 最佳答案 如果您可以完全控制值和枚举,并且它们是连续的,则可以使用枚举序数值:enumHeyo{FirstVal,SecondVal}...laterintsystemVal=[whatever];HeyoenumVal=Heyo.values()[systemVal];intagainSystemVal=enumVal.ordinal(); 关于jav
我正在从Android中的native代码接收long或int形式的返回值,我想将其转换或与enum匹配,以进行处理。可能吗?怎么样? 最佳答案 如果您可以完全控制值和枚举,并且它们是连续的,则可以使用枚举序数值:enumHeyo{FirstVal,SecondVal}...laterintsystemVal=[whatever];HeyoenumVal=Heyo.values()[systemVal];intagainSystemVal=enumVal.ordinal(); 关于jav
假设我有一个枚举:enumE{A,B,C;}如thisanswer所示由lucasmo,枚举值按照初始化的顺序存储在一个静态数组中,稍后您可以使用E.values()检索(克隆)该数组。现在假设我想实现E#getNext和E#getPrevious以使以下所有表达式的计算结果为true:E.A.getNext()==E.BE.B.getNext()==E.CE.C.getNext()==E.AE.A.getPrevious()==E.CE.B.getPrevious()==E.AE.C.getPrevious()==E.B我目前对getNext的实现如下:publicEgetNext(
假设我有一个枚举:enumE{A,B,C;}如thisanswer所示由lucasmo,枚举值按照初始化的顺序存储在一个静态数组中,稍后您可以使用E.values()检索(克隆)该数组。现在假设我想实现E#getNext和E#getPrevious以使以下所有表达式的计算结果为true:E.A.getNext()==E.BE.B.getNext()==E.CE.C.getNext()==E.AE.A.getPrevious()==E.CE.B.getPrevious()==E.AE.C.getPrevious()==E.B我目前对getNext的实现如下:publicEgetNext(
这个enum的构造函数是私有(private)的。这意味着什么?publicenumSLocale{EN_US(Locale.US,"www.abc.com","www.edc.com","www.vvv.com","www.earn.com");Listdomains;Localeloc;IMapmap;privateSLocale(Localeloc,String...domains){this.domains=Arrays.asList(domains);this.loc=loc;this.siteMap=Factory.getMap(loc);}publicListgetDom
这个enum的构造函数是私有(private)的。这意味着什么?publicenumSLocale{EN_US(Locale.US,"www.abc.com","www.edc.com","www.vvv.com","www.earn.com");Listdomains;Localeloc;IMapmap;privateSLocale(Localeloc,String...domains){this.domains=Arrays.asList(domains);this.loc=loc;this.siteMap=Factory.getMap(loc);}publicListgetDom
我已阅读问题DifferenceofEnumbetweenjavaandC++?但我还是一头雾水。我希望以下返回相关的字符串:publicenumChecker{EMPTY("Empty"),RED("Red"),YELLOW("Yellow");}根据我的阅读,这应该是可能的。只是希望您对如何实现它有所了解。 最佳答案 简答您需要一个构造函数、一个字段和一个getter。构造函数枚举类型可以有构造函数,前提是它们的访问级别是私有(private)的或默认的(包私有(private))。您不能直接调用这些构造函数,除非在枚举声明本身